#_________________________________________________________________________________________________________________________________
#_________________________________________________________________________________________________________________________________
#_________________________________________________________________________________________________________________________________
#___________________________________________________________________________________________________________________________________________
inherit CometCompo_evolution_PM_FC_basic Physical_model
#___________________________________________________________________________________________________________________________________________
method CometCompo_evolution_PM_FC_basic constructor {name descr args} {
 this inherited $name $descr
 
 set this(dynasty) "" 
 eval "$objName configure $args"
 return $objName
}

#___________________________________________________________________________________________________________________________________________
Methodes_set_LC CometCompo_evolution_PM_FC_basic [P_L_methodes_set_CometCompo_evolution] {} {}
Methodes_get_LC CometCompo_evolution_PM_FC_basic [P_L_methodes_get_CometCompo_evolution] {$this(FC)}

#___________________________________________________________________________________________________________________________________________
Generate_PM_setters CometCompo_evolution_PM_FC_basic [P_L_methodes_set_CometCompo_evolution_COMET_RE_FC]

Generate_accessors CometCompo_evolution_PM_FC_basic [list dynasty]
#___________________________________________________________________________________________________________________________________________
Inject_code CometCompo_evolution_PM_FC_basic Process { 
 if {[this get_can_process]} {
    set L_inputs [list]
	foreach input [this get_L_inputs] {
	    lassign $input name cardN cardinality values
		lappend L_inputs $name
		set L_input_$name $values
	}
    foreach param [this get_L_param]	 {
	  lassign $param name value
	  set L_params_$name $value
	 }
    foreach output [this get_L_outputs] {
	   lassign $output name cardN cardinality 
	   set L_output_$name {}	
     }
	eval [this get_Core] ;
    } else {
		this set_has_processed 0
		#error
		return 
    }
} {}

#___________________________________________________________________________________________________________________________________________
Inject_code CometCompo_evolution_PM_FC_basic set_has_processed {} {
  if {$v} {
    foreach input [this get_L_inputs] {this prim_set_Input_data [lindex $input 0] ""}
   }
}
